"""浮点数类型"""

"""
一、浮点数：小数
"""
print(0.123456789)  # 0.123456789

"""
二、浮点数的创建
    1.使用小数
    2.调用内置函数float()
    不传递任何参数，返回浮点数0.0
    只传递一个参数，将传递参数转换为浮点数
"""
print(float())  # 0.0
print(float(118))  # 118.0
print(float(118.2))  # 118.2
print(float('118'))  # 118.0

"""
三、科学计数法表示浮点数
    很大或很小的浮点数可用科学计数法表示
    men表示：m乘以10的n次方
"""
print(2.3e8)  # 230000000.0
print(2.3e-4)  # 0.00023

"""
四、浮点数存储的不精确性
    计算机采用二进制存储浮点数，不精确，可能会存在误差
"""
print(1.1 + 2.2 - 3.3)  # 4.440892098500626e-16
print(1.1 + 2.2)  # 3.3000000000000003

"""
解决方案：导入模块decimal，处理十进制浮点数
        导入模块fractions，处理分数
"""
from decimal import Decimal

print(Decimal('1.1') + Decimal('2.2') - Decimal('3.3'))  # 0.0

from fractions import Fraction

print(Fraction(11, 10) + Fraction(22, 10) - Fraction(33, 10))   # 0
